package com.foodcommunity.mapper;

import com.foodcommunity.entity.RestaurantReview;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface RestaurantReviewMapper {
    /**
     * 插入评论
     */
    int insert(RestaurantReview review);
    
    /**
     * 删除评论
     */
    int delete(Long id);
    
    /**
     * 更新评论
     */
    int update(RestaurantReview review);
    
    /**
     * 根据ID查询评论
     */
    RestaurantReview selectById(Long id);
    
    /**
     * 根据餐厅ID查询评论列表
     */
    List<RestaurantReview> selectByRestaurantId(Long restaurantId);
    
    /**
     * 根据用户ID查询评论列表
     */
    List<RestaurantReview> selectByUserId(Long userId);
    
    /**
     * 查询餐厅的评论数量
     */
    int countByRestaurantId(Long restaurantId);
    
    /**
     * 分页查询餐厅评论
     */
    List<RestaurantReview> selectByRestaurantIdWithPage(@Param("restaurantId") Long restaurantId, 
                                                      @Param("offset") int offset, 
                                                      @Param("limit") int limit);
    
    /**
     * 计算餐厅的平均评分
     */
    Double calculateAverageRating(Long restaurantId);
} 